package net.huashitong.node.utile;

import com.sirdc.modules.utils.StringUtils;
import net.huashitong.Project.entity.NewProjects;
import net.huashitong.node.entity.NodeNewschedules;

import java.util.List;

/**
 * 封装了工具类：传入小节点信息列表，统计节点的时间状态：逾期，超前，正常,未开始
 * IsDelay: 0:正常，1:逾期，2:超前，-1:未开始
 */
public class NodeNewschedulesUtil {

    public static final String EARLY = "2";     //超前
    public static final String DELAY = "1";     //逾期
    public static final String NORMAL = "0";    //正常
    public static final String NOFINISH = "-1";  //未开始
    /**
     * 封装了工具类：传入小节点信息列表，统计节点的时间状态：逾期，超前，正常，未开始
     * IsDelay: 0:正常，1:逾期，2:超前，-1:未开始
     * @param list1
     */
    public void updateNodesTimeState(List<NodeNewschedules> list1,NewProjects np){
        for (NodeNewschedules n1:list1) {
            if("1".equals(n1.getStatus())){ //进行中
                if(StringUtils.isNotBlank(n1.getPlanBeginDate())&&StringUtils.isNotBlank(n1.getPlanTime())) {
                    int zxz = DateUtil.getDate().compareTo(DateUtil.addDays(n1.getPlanBeginDate(), Integer.parseInt(n1.getPlanTime()) - 1));
                    if(zxz > 0){
                        n1.setIsDelay(DELAY);
                    }else{
                        n1.setIsDelay(NORMAL);
                    }
                    continue;
                }else{
                    n1.setIsDelay(NORMAL);
                }
            }
            if(StringUtils.isNotBlank(n1.getFactTime())&&StringUtils.isNotBlank(n1.getPlanTime())){
                if(!"2".equals(n1.getStatus())){
                    n1.setIsDelay(NOFINISH);     //未完成
                    continue;
                }
                int factTime = Integer.parseInt(n1.getFactTime());
                int planTime = Integer.parseInt(n1.getPlanTime());
                if(factTime > planTime){        //实际时间大于计划时间----逾期
                    n1.setIsDelay(DELAY);
                }else if(factTime < planTime){  //实际时间小于计划时间----超前
                    n1.setIsDelay(EARLY);
                }else if(factTime == planTime){ //实际时间等于计划时间----正常
                    n1.setIsDelay(NORMAL);
                }
            }else{
                if(!"2".equals(n1.getStatus())){
                    n1.setIsDelay(NOFINISH);     //未完成
                    continue;
                }
            }


            n1.setCreateDate(np.getCreateDate());
        }
    }
}
